package com.lonely.goods.domain.dto.goods;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author : 黄志标
 * @date: 2025/7/15 16:51
 * @description: 基于商品创建订单 请求实体
 */
@Data
public class GoodsCreateOrderDTO implements Serializable {

    /**
     * 商品id
     */
    @NotNull(message = "商品id为空")
    private Long goodsId;

    /**
     * 款式颜色
     */
    @NotBlank(message = "款式颜色为空")
    private String color;

    /**
     * 尺码
     */
    @NotEmpty(message = "尺码为空")
    @Valid
    private List<GoodsCreateOrderSizeDTO> sizes;

    /**
     * 订单价格
     */
    @NotNull(message = "订单价格为空")
    private Double orderPrice;

    /**
     * 客户id
     */
    @NotNull(message = "客户id为空")
    private Long customerId;

    /**
     * 订单类型
     */
    @NotNull(message = "订单类型为空")
    private Integer orderType;

    /**
     * 备货类型
     */
    @NotNull(message = "备货类型为空")
    private Integer stockType;

    /**
     * 是否首单
     */
//    @NotNull(message = "是否首单为空")
//    private Integer isFirst;

    /**
     * 是否紧急
     */
    @NotNull(message = "是否紧急为空")
    private Integer isUrgent;

    /**
     * 接单时间
     */
    @NotNull(message = "接单时间为空")
    private Date acceptOrderTime;

    /**
     * 目标交期
     */
    @NotNull(message = "目标交期为空")
    private Date deliveryTime;
}
